#include "seqlist.h"

//算法思想：
//首先，将顺序不断取下两个顺序表表头较小的结点存入新的顺序表中。
//然后，看哪个表还有剩余，将剩下部分加到新的顺序表后面
int Merge(seqlist A, seqlist B, seqlist *C) {
    int i = 0;
    int j = 0;
    int k = 0;
    if (A.length + B.length > C->listSize) {
        return 0;
    }
    while (i < A.length && j < B.length) {
        if (A.data[i] <= B.data[j]) {
            C->data[k ++] = A.data[i ++];
        } else {
             C->data[k ++] = B.data[j ++];
        }
    }
    while (i < A.length) {
        C->data[k ++] = A.data[i ++];
    }
    while( j < B.length) {
        C->data[k ++] = B.data[j ++];
    }
    C->length = k;
    return 1;
}